package com.fhzn.boss.web.request;

import com.fhzn.boss.context.RequestContext;
import com.fhzn.commons.toolkit.entity.PageRequest;
import com.fhzn.commons.toolkit.exception.BuzException;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

/**
 * @author fhzn
 * <p>
 * controller接受到的请求封装
 */
@Data
public abstract class BaseRequest<T> extends PageRequest {

    /**
     * node端用户
     */
    private String handler;

    /**
     * node端应用名称
     */
    private String invokeAppName;

    public void checkBaseParams() {
        if (StringUtils.isAnyBlank(getHandler(), getInvokeAppName())) {
            throw new BuzException("请求参数错误，请检查后重试");
        }
    }


    /**
     * 生成发往服务端的参数对象
     *
     * @return Type
     */
    public abstract T genServiceParam();

    public String getInvokeAppName() {
        return RequestContext.getRequestData().getInvokeAppName();
    }

    public String getHandler() {
        return RequestContext.getRequestData().getHandler();
    }
}
